% Defino el tipo de documento.
\documentclass[a4paper,11pt]{article}
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}
% Este es para poder poner graficos y diagramas.
\usepackage{graphicx}
% Este paquete me permite poner grados celsius.
\usepackage{textcomp}

\title{
        Programaci\'on de Objetos Distribuidos \\
        Entrega Final \\
        Diagrama y Casos de Uso
    }

\author{
        Grupo 3. \\
        46099 - Abramowicz, Pablo Federico \\
        46281 - Cabral, Mart\'in Esteban \\
        47031 - Gomez, Vidal Dar\'io Maximiliano \\
        46383 - Go\~ni, Juan Ignacio \\
        46233 - Palombo, Mart\'in \\
        46069 - Sessa, Carlos Manuel
        }
\date{}

% Empieza el documento.
\begin{document}


\maketitle
\pagebreak

%Redefine the first level
\renewcommand{\theenumi}{\arabic{enumi}.}
\renewcommand{\labelenumi}{\theenumi}

%Redefine the second level
\renewcommand{\theenumii}{\arabic{enumii}.}
\renewcommand{\labelenumii}{\theenumii}

%Redefine the thrid level
\renewcommand{\theenumiii}{\arabic{enumiii}.}
\renewcommand{\labelenumiii}{\theenumiii}

\pagebreak

\section{Casos de Uso}

% CAMBIAR DATOS PERSONALES
\subsection{Cambiar datos personales}
\begin{enumerate}

    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Modificaci\'on de datos personales de un usuario gen\'erico del sistema.
    \item Actores: \\
        Usuario gen\'erico.
    \item Disparadores: \\
        El usuario hace click en \emph{Perfil}
    \end{enumerate}

    \item Flujo de Eventos:
    \begin{enumerate}

        \item Flujo b\'asico:
            \begin{enumerate}
                \item El usuario hace click en \emph{Perfil}.
                \item Cambia su direcci\'on de e-mail o cantidad de d\'ias de anticipaci\'on con los que desea recibir un mail del sistema.
                \item Una vez realizados los cambios hace click en \emph{Confirmar}.
            \end{enumerate}
        \item Flujo alternativo:
            \begin{enumerate}
                \item Una vez realizados los cambios el usuario hace click en \emph{Cancelar}.
            \end{enumerate}
    \end{enumerate}

    \item Precondiciones: \\
        Usuario hizo \underline{Login} como usuario gen\'erico.

    \item Post condiciones: \\
        Datos personales del usuario guardados.

\end{enumerate}

% CAIDA DE RESERVAS
\subsection{Caida de reservas de canchas}
\begin{enumerate}

        \item
	\begin{enumerate}
            \item Descripci\'on breve: \\
                Actualizaci\'on de las reservas autom\'aticamente cuando alguna reserva
                se da de baja por que se cumpli\'o el tiempo de pago.
            \item Actores: \\
                Cron.
            \item Disparadores: \\
                Dada una hora determina se ejecuta autom\'aticamente.
        \end{enumerate}

        \item Flujo de Eventos: 

        \begin{enumerate}
            \item Flujo b\'asico:
                Si existe alguna reserva cuyo tiempo de se\~na o pago expir\'o se da de baja.
        \end{enumerate}

        \item Precondiciones: \\
            Reserva existente.

        \item Post condiciones: \\
            Reserva dada de baja.

\end{enumerate}

% RESERVAR CANCHA
\subsection{Reservar cancha}
\begin{enumerate}

    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Este caso de uso describe la reserva de una cancha determinada.
    \item Actores: \\
        Usuario gen\'erico.
    \item Disparadores: \\
        El usuario hace click en \emph{Reservar} en el listado de canchas.
    \end{enumerate}

    \item Flujo de Eventos:

    \begin{enumerate}

        \item Flujo b\'asico:
		\begin{enumerate}
		\item	El usuario hace click en \emph{Reservar}.
		\item	El usuario hace click en el campo fecha.
		\item	Selecciona una fecha del calendario.
		\item	Selecciona un horario de la lista de horarios.
		\item	El usuario hace click en \emph{Agregar}.
    		\end{enumerate}
    \end{enumerate}

    \item Precondiciones: \\
        Usuario hizo \underline{Login} como usuario gen\'erico.
        La cancha est\'a registrada en el sistema.
	La cancha tiene horarios disponibles.

    \item Post condiciones: \\
        Cancha reservada para el usuario gen\'erico.

\end{enumerate}

% RESERVAS CANCHA PERIODICAMENTE
\subsection{Reservar cancha periodicamente}
\begin{enumerate}

    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Este caso de uso describe la reserva peri\'odica de una cancha determinada.
    \item Actores: \\
        Usuario gen\'erico.
    \item Disparadores: \\
        El usuario hace click en \emph{Reservar} en el listado de canchas.
    \end{enumerate}

    \item Flujo de Eventos:

    \begin{enumerate}

        \item Flujo b\'asico:
		\begin{enumerate}
		\item	El usuario hace click en \underline{Reservar} en el listado de canchas.
		\item	Hace click en \emph{Aqu\'i} en el mensaje de informaci\'on.
		\item	El usuario hace click en el campo fecha \emph{Desde}.
		\item	Selecciona una fecha del calendario.
		\item	El usuario hace click en el campo fecha \emph{Hasta}.
		\item	Selecciona una fecha del calendario.
		\item	Selecciona un horario de la lista de horarios.
		\item	El usuario hace click en \emph{Agregar}.
		\end{enumerate}
	\end{enumerate}

    \item Precondiciones: \\
        Usuario hizo \underline{Login} como usuario gen\'erico.
        La cancha est\'a registrada en el sistema.

    \item Post condiciones: \\
        Cancha reservada peri\'odicamente para el usuario gen\'erico.
	La cancha se reservara s\'olo para los d\'ias disponibles.
\end{enumerate}

% LISTAR CANCHAS
\subsection{Listar Canchas}
\begin{enumerate}
    \item
    \begin{enumerate}
		\item Descripci\'on breve: \\
        		Se le presenta al usuario un listado de las canchas cargadas en el sistema.
    		\item Actores: \\
        		Usuario gen\'erico.
    		\item Disparadores: \\
        		El usuario hace click en \emph{Canchas}.
    \end{enumerate}
    \item Flujo de Eventos:
		\begin{enumerate}
		\item Flujo b\'asico:
        		\begin{enumerate}
            			\item El usuario hace click en \emph{Canchas}
            			\item El sistema presenta al usuario un listado de las canchas.
        		\end{enumerate}
    		\end{enumerate}
    \item Precondiciones: \\
        No aplica.
    \item Post condiciones: \\
        Listado de canchas presentado al usuario.
\end{enumerate}

% LISTAR COMLEJOS
\subsection{Listar Complejos}
\begin{enumerate}
    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Se le presenta al usuario un listado de las complejos deportivos cargados en el sistema.
    \item Actores: \\
        Usuario gen\'erico.
    \item Disparadores: \\
        El usuario hace click en \emph{Complejos}.
    \end{enumerate}

    \item Flujo de Eventos: 

    \begin{enumerate}
        \item Flujo b\'asico:
        \begin{enumerate}
            \item El usuario hace click en \emph{Complejos}
            \item El sistema presenta al usuario un listado de los complejos.
        \end{enumerate}
    \end{enumerate}

    \item Precondiciones: \\
        No aplica.

    \item Post condiciones: \\
        Listado de complejos presentado al usuario.

\end{enumerate}

% ORDENAR LISTADO
\subsection{Ordenar Listado Cancha}
\begin{enumerate}

    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Se le permite al usuario ordenar el listado de cancha seg\'un diversos criterios.
    \item Actores: \\
        Usuario gen\'erico.
    \item Disparadores: \\
        El usuario realiza \underline{Listar Canchas}.
    \end{enumerate}

    \item Flujo de Eventos:

    \begin{enumerate}

        \item Flujo b\'asico:
        \begin{enumerate}
                    \item El usuario hace click en la columna que desea ordenar. Los posibles ordanamientos son:
			\begin{itemize}
			 \item Nombre
			 \item Complejo
			 \item Descripcion
			 \item Cantidad de Jugadores
			 \item Techada
			 \item Tipo de Piso
			 \item En Mantenimiento
			\end{itemize}
        \end{enumerate}
    \end{enumerate}

    \item Precondiciones: \\
        Listado cargado previamente.

    \item Post condiciones: \\
        Listado ordenado seg\'un criterio seleccionado.

\end{enumerate}

% VER DETALLE CANCHA
\subsection{Ver detalle cancha}
\begin{enumerate}

    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Se muestra en detalle las caracter\'isticas de una cancha.
    \item Actores: \\
        Usuario gen\'erico.
    \item Disparadores: \\
        Click en el bot\'on \emph{Ver detalles} dentro de \underline{Listar Canchas} o en \underline{Ver detalles complejo}
    \end{enumerate}

    \item Flujo de Eventos:
    \begin{enumerate}
        \item Flujo b\'asico:
        \begin{enumerate}
            \item El usuario selecciona \underline{Listar Canchas}
                o \underline{Ver detalles complejo} en el listado de complejos.
            \item El usuario hace click en \emph{Ver detalles}
            \item Se le presenta al usuario informaci\'on detallada sobre la cancha seleccionada.
        \end{enumerate}
    \end{enumerate}

    \item Precondiciones: \\
        Usuario logueado como usuario com\'un.
    \item Post condiciones: \\
        Detalles de la cancha presentados al usuario.

\end{enumerate}


%ALTA COMPLEJO
\subsection{Alta Complejo}
\begin{enumerate}

    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Este caso de uso describe el alta de un nuevo complejo.
    \item Actores: \\
        Administrador.
    \item Disparadores: \\
        El administrador selecciona \emph{Agregar Nuevo} en el listado de complejos.
    \end{enumerate} 
    \item Flujo b\'asico:
		\begin{enumerate}
        		\item El usuario selecciona \underline{Complejos}.
                        \item El usuario hace click en \emph{Agregar Nuevo}
			\item El completa los datos solicitados. Todos los campos son obligatorios a menos que se indique otra cosa. Los campos son: 
			\begin{itemize}
				 \item Nombre del Complejo
				 \item Descripci\'on
				 \item Ciudad
				 \item C\'odigo Postal
				 \item Pa\'is
		                 \item Provincia
				 \item Localidad
				 \item Barrio
				 \item Latitud (opcional)
				 \item Longitud (opcional)
				 \item Tel\'efono(s)
				 \item Direcci\'on
				 \item Horarios de atenci\'on.
				 \item Porcentaje de Reserva
				 \item L\'imite de se\~na.
				 \item L\'imite de Reserva
			\end{itemize}
                        \item El usuario hace click en \emph{Confirmar}.
                \end{enumerate}
	\item Flujo alternativo:
		\begin{enumerate}
		 \item El usuario hace click en \emph{Cancelar}.
		 \item El complejo no se guarda.
		\end{enumerate}

    \item Precondiciones: \\
        Usuario hizo \underline{Login} como administrador.

    \item Post condiciones: \\
        C\'omplejo guardado exitosamente.

\end{enumerate}

%MODIFICACION COMPLEJO
\subsection{Modificaci\'on Complejo}
\begin{enumerate}

    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Este caso de uso describe la modificaci\'on de un nuevo complejo.
    \item Actores: \\
        Administrador.
    \item Disparadores: \\
        El administrador selecciona \emph{Modificar} en el listado de complejos o en \underline{Vista Detallada Complejo}.
    \end{enumerate} 
    \item Flujo b\'asico:
		\begin{enumerate}
        		\item El usuario selecciona \underline{Complejos}.
                        \item El usuario hace click en \emph{Modificar}
			\item El usuario modifica los datos que desee. Todos los campos son obligatorios a menos que se indique otra cosa. Los campos son: 
			\begin{itemize}
				 \item Nombre del Complejo
				 \item Descripci\'on
				 \item Ciudad
				 \item C\'odigo Postal
				 \item Pa\'is
		                 \item Provincia
				 \item Localidad
				 \item Barrio
				 \item Latitud (opcional)
				 \item Longitud (opcional)
				 \item Tel\'efono(s)
				 \item Direcci\'on
				 \item Horarios de atenci\'on.
				 \item Porcentaje de Reserva
				 \item L\'imite de se\~na.
				 \item L\'imite de Reserva
			\end{itemize}
                        \item El usuario hace click en \emph{Confirmar}.
                \end{enumerate}
	\item Flujo alternativo:
		\begin{enumerate}
		 \item El usuario hace click en \emph{Cancelar}.
		 \item Las modificaciones no se guardan.
		\end{enumerate}

    \item Precondiciones: \\
        Usuario hizo \underline{Login} como administrador.

    \item Post condiciones: \\
        C\'omplejo modificado exitosamente.

\end{enumerate}

%BAJA COMPLEJO
\subsection{Baja Complejo}
\begin{enumerate}

    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Este caso de uso describe la baja de un complejo.
    \item Actores: \\
        Administrador.
    \item Disparadores: \\
        El administrador selecciona \emph{Eliminar} en el listado de complejos.
    \end{enumerate} 
    \item Flujo b\'asico:
		\begin{enumerate}
        		\item El usuario selecciona \underline{Complejos}.
                        \item El usuario hace click en \emph{Eliminar} al lado del complejo que desea borrar.
			\item El usuario hace click en \emph{Ok} en el mensaje de confirmaci\'on.
		\end{enumerate}
	\item Flujo alternativo:
		\begin{enumerate}
		 \item El usuario hace click en \emph{Cancelar} en el mensaje de confirmaci\'on.
		 \item El complejo no se borra.
		\end{enumerate}

    \item Precondiciones: \\
        Usuario hizo \underline{Login} como administrador.

    \item Post condiciones: \\
        C\'omplejo eliminado exitosamente.
\end{enumerate}


%ALTA CANCHA
\subsection{Alta Cancha}
\begin{enumerate}

    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Este caso de uso describe el alta de una nueva cancha.
    \item Actores: \\
        Administrador.
    \item Disparadores: \\
        El administrador selecciona \emph{Agregar Nuevo} en el listado de canchas, o en \underline{Vista Detallada Complejo}
    \end{enumerate} 
    \item Flujo b\'asico:
		\begin{enumerate}
        		\item El usuario selecciona \underline{Canchas}.
                        \item El usuario hace click en \emph{Agregar Nuevo}
			\item El completa los datos solicitados. Todos los campos son obligatorios a menos que se indique otra cosa. Los campos son: 
			\begin{itemize}
				 \item Complejo al cual pertenece
				 \item Nombre
				 \item Descripci\'on
				 \item Techada
				 \item Tipo de piso
				 \item Precio de alquiler
		                 \item Porcentaje de reserva
				 \item Cantidad de jugadores
			\end{itemize}
                        \item El usuario hace click en \emph{Confirmar}.
                \end{enumerate}
	\item Flujo alternativo:
		\begin{enumerate}
		 \item El usuario hace click en \emph{Cancelar}.
		 \item La cancha no se guarda.
		\end{enumerate}

    \item Precondiciones: \\
        Usuario hizo \underline{Login} como administrador.

    \item Post condiciones: \\
        Cancha guardado exitosamente.

\end{enumerate}

%MODIFICACION CANCHA
\subsection{Modificaci\'on Cancha}
\begin{enumerate}

    \item
    	\begin{enumerate}
    	\item Descripci\'on breve: \\
	        Este caso de uso describe la modificaci\'on de una nueva cancha.
    	\item Actores: \\
        	Administrador.
    	\item Disparadores: \\
        	El administrador selecciona \emph{Modificar} en el listado de canchas, o en \underline{Vista Detallada Cancha}
    	\item Flujo de Eventos: 
	\end{enumerate} 
    \item Flujo b\'asico:
		\begin{enumerate}
        		\item El usuario selecciona \underline{Canchas}.
                        \item El usuario hace click en \emph{Modificar}
			\item El usuario modifica los datos deseados. Todos los campos son obligatorios a menos que se indique otra cosa. Los campos son: 
			\begin{itemize}
				 \item Complejo al cual pertenece
				 \item Nombre
				 \item Descripci\'on
				 \item Techada
				 \item Tipo de piso
				 \item Precio de alquiler
		                 \item Porcentaje de reserva
				 \item Cantidad de jugadores
			\end{itemize}
                        \item El usuario hace click en \emph{Confirmar}.
                \end{enumerate}
	\item Flujo alternativo:
		\begin{enumerate}
		 \item El usuario hace click en \emph{Cancelar}.
		 \item Las modificaciones no se guardan
		\end{enumerate}

    \item Precondiciones: \\
        Usuario hizo \underline{Login} como administrador.

    \item Post condiciones: \\
        Cancha modificada exitosamente.

\end{enumerate}

%BAJA CANCHA
\subsection{Baja Cancha}
\begin{enumerate}

    \item
    	\begin{enumerate}
    		\item Descripci\'on breve: \\
        		Este caso de uso describe la baja de una cancha.
    		\item Actores: \\
        		Administrador.
	    	\item Disparadores: \\
        		El administrador selecciona \emph{Eliminar} en el listado de canchas.
    	\end{enumerate} 
    \item Flujo b\'asico:
		\begin{enumerate}
        		\item El usuario selecciona \underline{Canchas}.
                        \item El usuario hace click en \emph{Eliminar} al lado de la cancha que desea borrar.
			\item El usuario hace click en \emph{Ok} en el mensaje de confirmaci\'on.
		\end{enumerate}
    \item Flujo alternativo:
		\begin{enumerate}
		 \item El usuario hace click en \emph{Cancelar} en el mensaje de confirmaci\'on.
		 \item La cancha no se borra.
		\end{enumerate}
    \item Precondiciones: \\
        Usuario hizo \underline{Login} como administrador.
    \item Post condiciones: \\
        Cancha eliminado exitosamente.
\end{enumerate}


% ADMINISTRAR PREMIOS POR RESERVAS (SISTEMA DE PUNTOS)
\subsection{Modificaci\'on de premios por reservas}
\begin{enumerate}
    \item
    	\begin{enumerate}
    		\item Descripci\'on breve: \\
        		Este caso de uso describe como se modifica el sistema de puntos del sitio.
    		\item Actores: \\
        		Administrador.
    		\item Disparadores: \\
        		El administrador hace click en \emph{Sistema de Puntos}
    	\end{enumerate}
    \item Flujo de Eventos: 
     	\begin{enumerate}
		\item Flujo b\'asico:
			\begin{enumerate}
				\item El usuario hace click en \emph{Sistema de Puntos}.
				\item El usuario hace click en \emph{Modificar}.
				\item El usuario completa el formulario. Los campos son obligatorio y son los que siguen:
				\begin{itemize}
					\item Reserva
					\item Se\~na
					\item Pago
					\item Cae Reserva
					\item Cae Se\~nada
				\end{itemize}
				\item El usuario hace click en \emph{Confirmar}.
			\end{enumerate}
	\end{enumerate}
    \item Precondiciones: \\
        Usuario hizo \underline{Login} como administrador.
    \item Post condiciones: \\
        Sistema de puntos actualizado.
\end{enumerate}

%CONSULTA LIMITES DE RESERVAS POR PUNTOS (POLITICAS DE EXPIRACION)
\subsection{Ver Expiraci\'on Complejo}
\begin{enumerate}
    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Este caso de uso describe como se consultan los plazos de vencimiento de
        las reservas seg\'un el puntaje del usuario que haya realizado la reserva.
    \item Actores: \\
        Administrador.
    \item Disparadores: \\
        El administrador hace click en \underline{Complejos} y luego en \emph{Ver Expiraci\'on}.
    \end{enumerate}
    \item Flujo de Eventos: 
    \begin{enumerate}
        \item Flujo b\'asico:
		\begin{enumerate}
            		\item El usuario hace click en \underline{Complejos}.
            		\item El usuario hace click en \emph{Ver Expiraci\'on}.
		\end{enumerate}
    \end{enumerate}
    \item Precondiciones: \\
        Usuario hizo \underline{Login} como administrador.\\
    \item Post condiciones: \\
	Detalle de politicas presentado al usuario.
\end{enumerate}

%ALTA LIMITES DE RESERVAS POR PUNTOS (POLITICAS DE EXPIRACION)
\subsection{Alta Politicas de Expiracion para un Complejo} 
\begin{enumerate}
    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Este caso de uso describe como se definen los plazos de vencimiento de
        las reservas seg\'un el puntaje del usuario que haya realizado la reserva.
    \item Actores: \\
        Administrador.
    \item Disparadores: \\
        El administrador hace click en \underline{Ver Expiracion Complejo} y luego en \emph{Agregar Nueva}.
    \end{enumerate}
    \item Flujo de Eventos: 
    \begin{enumerate}
        \item Flujo b\'asico:
		\begin{enumerate}
            		\item El usuario hace click en \underline{Ver Expiraci\'on Complejo}.
            		\item El usuario hace click en \emph{Agregar Nueva}.
            		\item El usuario completa el formulario. Las campos son obligatorios y son:
            		\begin{itemize}
				\item Desde
				\item Hasta
				\item Cae Reserva
				\item Cae Se\~nada
			\end{itemize}
			\item El usuario hace click en \emph{Confirmar}
		\end{enumerate}
    \end{enumerate}
    \item Precondiciones: \\
        Usuario hizo \underline{Login} como administrador.
    \item Post condiciones: \\
        Politica agregada correctamente.
\end{enumerate}

% MODIFICAR LIMITES DE RESERVAS POR PUNTOS (POLITICAS DE EXPIRACION)
\subsection{Modificar Politicas de Expiracion para un Complejo} 
\begin{enumerate}
    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Este caso de uso describe como se definen los plazos de vencimiento de
        las reservas seg\'un el puntaje del usuario que haya realizado la reserva.
    \item Actores: \\
        Administrador.
    \item Disparadores: \\
        El administrador hace click en \underline{Ver Expiracion Complejo} y luego en \emph{Moficar Expiraci\'on}.
    \end{enumerate}
    \item Flujo de Eventos: 
    \begin{enumerate}
        \item Flujo b\'asico:
		\begin{enumerate}
            		\item El usuario hace click en \underline{Ver Expiraci\'on Complejo}.
            		\item El usuario hace click en \emph{Modificar} al lado de la politica que desea editar.
            		\item El usuario completa el formulario. Las campos son obligatorios y son:
            		\begin{itemize}
				\item Desde
				\item Hasta
				\item Cae Reserva
				\item Cae Se\~nada
			\end{itemize}
			\item El usuario hace click en \emph{Confirmar}
		\end{enumerate}
    \end{enumerate}
    \item Precondiciones: \\
        Usuario hizo \underline{Login} como administrador.
    \item Post condiciones: \\
        Politicas modificadas correctamente.
\end{enumerate}

%BAJA LIMITES DE RESERVAS POR PUNTOS (POLITICAS DE EXPIRACION)
\subsection{Baja Politicas de Expiracion para un Complejo} 
\begin{enumerate}
    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Este caso de uso describe como se eliminan los plazos de vencimiento de
        las reservas seg\'un el puntaje del usuario que haya realizado la reserva.
    \item Actores: \\
        Administrador.
    \item Disparadores: \\
        El administrador hace click en \underline{Ver Expiracion Complejo} y luego en \emph{Eliminar}.
    \end{enumerate}
    \item Flujo de Eventos: 
    \begin{enumerate}
        \item Flujo b\'asico:
		\begin{enumerate}
            		\item El usuario hace click en \underline{Ver Expiraci\'on Complejo}.
            		\item El usuario hace click en \emph{Eliminar}.
			\item El usuario hace click en \emph{Ok} en el cuadro de confirmaci\'on.
		\end{enumerate}
    \end{enumerate}
    \item Precondiciones: \\
        Usuario hizo \underline{Login} como administrador.\\
	Hay al menos dos politicas en el listado.
    \item Post condiciones: \\
        Politica eliminada correctamente.
\end{enumerate}

%CONSULTA LIMITES DE RESERVAS POR PUNTOS (POLITICAS DE EXPIRACION)
\subsection{Ver Expiraci\'on Cancha}
\begin{enumerate}
    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Este caso de uso describe como se consultan los plazos de vencimiento de
        las reservas seg\'un el puntaje del usuario que haya realizado la reserva.
    \item Actores: \\
        Administrador.
    \item Disparadores: \\
        El administrador hace click en \underline{Canchas} y luego en \emph{Ver Expiraci\'on}.
    \end{enumerate}
    \item Flujo de Eventos: 
    \begin{enumerate}
        \item Flujo b\'asico:
		\begin{enumerate}
            		\item El usuario hace click en \underline{Canchas}.
            		\item El usuario hace click en \emph{Ver Expiraci\'on}.
		\end{enumerate}
    \end{enumerate}
    \item Precondiciones: \\
        Usuario hizo \underline{Login} como administrador.\\
    \item Post condiciones: \\
	Detalle de politicas presentado al usuario.
\end{enumerate}

%ALTA LIMITES DE RESERVAS POR PUNTOS (POLITICAS DE EXPIRACION)
\subsection{Alta Politicas de Expiracion para una Cancha} 
\begin{enumerate}
    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Este caso de uso describe como se definen los plazos de vencimiento de
        las reservas seg\'un el puntaje del usuario que haya realizado la reserva.
    \item Actores: \\
        Administrador.
    \item Disparadores: \\
        El administrador hace click en \underline{Ver Expiraci\'on Cancha} y luego en \emph{Agregar Nueva}.
    \end{enumerate}
    \item Flujo de Eventos: 
    \begin{enumerate}
        \item Flujo b\'asico:
		\begin{enumerate}
            		\item El usuario hace click en \underline{Ver Expiraci\'on Cancha}.
            		\item El usuario hace click en \emph{Agregar Nueva}.
            		\item El usuario completa el formulario. Las campos son obligatorios y son:
            		\begin{itemize}
				\item Desde
				\item Hasta
				\item Cae Reserva
				\item Cae Se\~nada
			\end{itemize}
			\item El usuario hace click en \emph{Confirmar}
		\end{enumerate}
    \end{enumerate}
    \item Precondiciones: \\
        Usuario hizo \underline{Login} como administrador.
    \item Post condiciones: \\
        Politica agregada correctamente.
\end{enumerate}

% MODIFICAR LIMITES DE RESERVAS POR PUNTOS (POLITICAS DE EXPIRACION)
\subsection{Modificar Politicas de Expiracion para una Cancha} 
\begin{enumerate}
    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Este caso de uso describe como se definen los plazos de vencimiento de
        las reservas seg\'un el puntaje del usuario que haya realizado la reserva.
    \item Actores: \\
        Administrador.
    \item Disparadores: \\
        El administrador hace click en \underline{Ver Expiraci\'on Cancha} y luego en \emph{Moficar Expiraci\'on}.
    \end{enumerate}
    \item Flujo de Eventos: 
    \begin{enumerate}
        \item Flujo b\'asico:
		\begin{enumerate}
            		\item El usuario hace click en \underline{Ver Expiraci\'on Cancha}.
            		\item El usuario hace click en \emph{Modificar} al lado de la politica que desea editar.
            		\item El usuario completa el formulario. Las campos son obligatorios y son:
            		\begin{itemize}
				\item Desde
				\item Hasta
				\item Cae Reserva
				\item Cae Se\~nada
			\end{itemize}
			\item El usuario hace click en \emph{Confirmar}
		\end{enumerate}
    \end{enumerate}
    \item Precondiciones: \\
        Usuario hizo \underline{Login} como administrador.
    \item Post condiciones: \\
        Politicas modificadas correctamente.
\end{enumerate}

%BAJA LIMITES DE RESERVAS POR PUNTOS (POLITICAS DE EXPIRACION)
\subsection{Baja Politicas de Expiracion para una Cancha} 
\begin{enumerate}
    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Este caso de uso describe como se eliminan los plazos de vencimiento de
        las reservas seg\'un el puntaje del usuario que haya realizado la reserva.
    \item Actores: \\
        Administrador.
    \item Disparadores: \\
        El administrador hace click en \underline{Ver Expiracion Cancha} y luego en \emph{Eliminar}.
    \end{enumerate}
    \item Flujo de Eventos: 
    \begin{enumerate}
        \item Flujo b\'asico:
		\begin{enumerate}
            		\item El usuario hace click en \underline{Ver Expiraci\'on Cancha}.
            		\item El usuario hace click en \emph{Eliminar}.
			\item El usuario hace click en \emph{Ok} en el cuadro de confirmaci\'on.
		\end{enumerate}
    \end{enumerate}
    \item Precondiciones: \\
        Usuario hizo \underline{Login} como administrador.\\
	Hay al menos dos politicas en el listado.
    \item Post condiciones: \\
        Politica eliminada correctamente.
\end{enumerate}


% RESERVAR CAIDAS RSS
\subsection{RSS: Ver reservas caidas}
\begin{enumerate}
    \item
        \begin{enumerate}
            \item Descripci\'on breve: \\
                Se listan los complejos con las \'ultimas reservas caidas.
            \item Actores: \\
                Usuario gen\'erico, invitado.
            \item Disparadores: \\
                Acceso a la url del \emph{RSS} de reservas caidas.
        \end{enumerate}
    \item Flujo de Eventos:
        \begin{enumerate}
            \item Flujo b\'asico:
		\begin{enumerate}
		\item Usuario accede a la url del \emph{RSS} de reservas caidas.
        	\end{enumerate}
	\end{enumerate}
    \item Precondiciones: \\
        No aplica.
    \item Post condiciones: \\
        Listado de reservas caidas con formato para ser leido por un lecto RSS.
\end{enumerate}

% NUEVAS CANCHAS RSS
\subsection{RSS: Ver nuevas canchas}
\begin{enumerate}

    \item
    \begin{enumerate}
        \item Descripci\'on breve: \\
            Se listan las \'ultimas canchas agregadas al sistema.
        \item Actores: \\
            Usuario gen\'erico, invitado.
        \item Disparadores: \\
            Acceso a la url del \emph{RSS} de canchas nuevas.
    \end{enumerate}

    \item Flujo de Eventos: 

        \begin{enumerate}
            \item Flujo b\'asico:
        	\begin{enumerate}        
		\item 	Usuario gen\'erico accede a la url del \emph{RSS} de canchas nuevas
	        \end{enumerate}
	\end{enumerate}

    \item Precondiciones: \\
        El lector del \emph{RSS} no necesita estar logueado como usuario.
    \item Post condiciones: \\
        Listado de nuevas canchas con formato para ser leido con un lector RSS.

\end{enumerate}

% INVITADO CONFIRMAR REGISTRACION
\subsection{Invitado confirmar registraci\'on}
\begin{enumerate}

    \item
        \begin{enumerate}
            \item Descripci\'on breve: \\
                Confirmar la registraci\'on para obtener efectivamente una cuenta de usuario del sistema.
            \item Actores: \\
                Invitado.
            \item Disparadores: \\
                Click en el link del correo electr\'onico que se le env\'ia al invitado.

        \end{enumerate}

    \item Flujo de Eventos:

        \begin{enumerate}
            \item Flujo b\'asico:
                Un usuario gen\'erico accede hace click en el link del correo electr\'onico que le fue enviado.

            \item Flujo alternativo:\\
                Se muestra un cartel que informa que los datos ingresados son
                incorrectos, puede volver a intentarlo.

                \begin{enumerate}
                    \item Condici\'on 1 \\
                            El hash proporcionado no existe en la base de datos.
                    \item Condici\'on 2 \\
                            Faltan datos requeridos.
                \end{enumerate}
    \end{enumerate}

    \item Precondiciones: \\
        No debe estar registrado como usuario del sistema.

    \item Post condiciones: \\
        El invitado obtiene una cuenta de usuario y queda logueado en el sistema.

\end{enumerate}

% INVITADO REGISTRARSE
\subsection{Invitado registrarse}
\begin{enumerate}

    \item
        \begin{enumerate}
            \item Descripci\'on breve: \\
                Obtener una cuenta de usuario del sistema.
            \item Actores: \\
                Invitado.
            \item Disparadores: \\
                Click en \underline{registrarse} en la pantalla principal del sistema.

        \end{enumerate}

    \item Flujo de Eventos:

        \begin{enumerate}
            \item Flujo b\'asico:
                Un usuario gen\'erico accede a la pantalla principal del sistema y
                hace click en \underline{registrarse}. Ingresa los datos necesarios
                para registrarse como usuario del sistema.

            \item Flujo alternativo:\\
                Se muestra un cartel que informa que los datos ingresados son
                incorrectos, puede volver a intentarlo.

                \begin{enumerate}
                    \item Condici\'on 1 \\
                            El usuario ingresado ya existe dentro del sistema.
                    \item Condici\'on 2 \\
                            Faltan datos requeridos.
                    \item Condici\'on 3 \\
                            Las contrase\~nas ingresadas no son iguales.
                    \item Condici\'on 4 \\
                            Alguna combinaci\'on de las anteriores.
                \end{enumerate}
	\end{enumerate}

    \item Precondiciones: \\
        No debe estar registrado como usuario del sistema.

    \item Post condiciones: \\
        Se env\'ia un correo elecrt\'onico al usuario para confirmar su casilla.


\end{enumerate}

% INVITADO LOGIN
\subsection{Invitado login}
\begin{enumerate}

    \item
        \begin{enumerate}
            \item Descripci\'on breve: \\
                Acceso al sistema como usuario.
            \item Actores: \\
                Invitado.
            \item Disparadores: \\
                El invitado hace click en \emph{Ingresar}
        \end{enumerate}

    \item Flujo de Eventos:
        \begin{enumerate}
            \item Flujo b\'asico:
        	\begin{enumerate}
		\item	El invitado accede al sitio.
                \item 	El invitado ingresa nombre de usuario, contrase\~na. 
		\end{enumerate}
            \item Flujo alternativo:\\
		\begin{enumerate}
		\item	El usuario inserta datos invalidos.
		\item 	El sistema prohibe la entrada al sitio e informa al usuario del hecho.
		\end{enumerate}
        \end{enumerate}
        \item Precondiciones: \\
            Debe estar registrado como usuario del sistema.
        \item Post condiciones: \\
            El usuario tiene acceso al sistema.
\end{enumerate}

% CARGAR PAGO POR RESERVAS
\subsection{Cargar pago reservas}
\begin{enumerate}
    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Se carga un pago para una determinada reserva.
    \item Actores: \\
        Administrador.
    \item Disparadores: \\
        Click en el bot\'on \emph{Cargar Pago} dentro de la
        p\'agina que muestra las reservas.
    \end{enumerate}

    \item Flujo de Eventos: 

    \begin{enumerate}

        \item Flujo b\'asico:
	\begin{enumerate}
            \item Administrador hace click en \underline{Reservas}. 
	    \item El Administrador hace click en \emph{Cargar Pago}. 
	    \item Ingresa el monto que fue pagado de la reserva.
	\end{enumerate}

        \item Flujos alternativos:\\
            Se muestra un cartel que informa que la cantidad ingresada es
            incorrecta.
            \begin{enumerate}
                \item Condici\'on 1 \\
                    La cantidad ingresada es incorrecta.
            \end{enumerate}

    \end{enumerate}

    \item Precondiciones: \\
        Ususario logueado como administrador.

    \item Post condiciones: \\
        Pago de la reserva cargado y, si aplica, estado de la reserva y puntos
        del usuario que emiti\'o la reserva actualizados.

\end{enumerate}

% CARGAR RESERVA COMPLETA
\subsection{Cargar reserva completa}
\begin{enumerate}

    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Se carga un pago completo para una determinada reserva.
    \item Actores: \\
        Administrador.
    \item Disparadores: \\
        Click en el bot\'on \emph{Cargar Pago Completo} dentro de la p\'agina que muestra las reservas.
    \end{enumerate}

    \item Flujo de Eventos:

    \begin{enumerate}

        \item Flujo b\'asico:
	\begin{enumerate}
            \item Administrador hace click en \underline{Reservas}. 
	    \item El Administrador hace click en \emph{Cargar pago completo de reserva}.
	\end{enumerate}
    \end{enumerate}

    \item Precondiciones: \\
        Ususario logueado como administrador.

    \item Post condiciones: \\
        Pago de la reserva cargado y estado de la reserva actualizado a pagada.
        Puntos del usuario que emiti\'o la reserva actualizados.

\end{enumerate}


% VER DETALLE COMPLEJO
\subsection{Ver detalle complejo}
\begin{enumerate}

    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Se muestra en detalle las caracter\'isticas de un complejo.
    \item Actores: \\
        Usuario gen\'erico, Invitado, Administrador.
   \item Disparadores: \\
        Click en el bot\'on \emph{Detalles} dentro de la
        p\'agina que lista los complejos del sistema.
    \end{enumerate}

    \item Flujo de Eventos:

    \begin{enumerate}

        \item Flujo b\'asico:
	\begin{enumerate}
        	\item El actor hace click en \underline{Complejos}. 
		\item El actor hace click en \emph{Detalles}.
	\end{enumerate}

    \end{enumerate}

    \item Precondiciones: \\
        No aplica.

    \item Post condiciones: \\
        Vista detallada de la informaci\'on del complejo.

\end{enumerate}

% VER TODAS LAS RESERVAS
\subsection{Ver todas las reservas}
\begin{enumerate}

    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Se listan todas las reservas existentes.
    \item Actores: \\
        Administrador.
    \item Disparadores: \\
        Click en el bot\'on \underline{Reservas}.
    \end{enumerate}

    \item Flujo de Eventos:

    \begin{enumerate}

        \item Flujo b\'asico:
    		\begin{enumerate}
            	\item Un Administrador hace click en \emph{Reservas}.
		\end{enumerate}
    \end{enumerate}

    \item Precondiciones: \\
        Usuario logueado como administrador.

    \item Post condiciones: \\
        Listo de reservas presentado al actor.

\end{enumerate}

% VER RESERVAS DE CANCHA
\subsection{Ver reservas de canchas}
\begin{enumerate}

    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Se listan las reservas de canchas.
    \item Actores: \\
        Administrador.
    \item Disparadores: \\
        Click en el bot\'on \underline{Canchas}.
    \end{enumerate}

    \item Flujo de Eventos:

    \begin{enumerate}

        \item Flujo b\'asico:
		\begin{enumerate}
            	\item	Un Administrador hace click en \underline{Reservas}.
		\item	El Administrador hace click en \emph{Ver Reservas}.
		\end{enumerate}
    \end{enumerate}

    \item Precondiciones: \\
        Administrador logueado como administrador.

    \item Post condiciones: \\
        Listado de reservas para la cancha seleccionada.

\end{enumerate}

% VER RESERVAS DE COMPLEJO
\subsection{Ver reservas de complejos}
\begin{enumerate}

    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Se listan las reservas de un complejo.
    \item Actores: \\
        Administrador.
    \item Disparadores: \\
        Click en el bot\'on \emph{Ver reservas}
        en el listo de complejos.
    \end{enumerate}

    \item Flujo de Eventos:

    \begin{enumerate}

        \item Flujo b\'asico:
	\begin{enumerate}
            \item Un Administrador hace click en \underline{Complejos}.
	    \item El Administrador hace click en \emph{Ver Reservas} para un determinado complejo.
        \end{enumerate}

    \end{enumerate}

    \item Precondiciones: \\
        Administrador logueado como administrador.

    \item Post condiciones \\
        Listado de las reservas para un determinado complejo.

\end{enumerate}

% ORDENAR RESERVAS
\subsection{Ordenar reservas}
\begin{enumerate}
    \item
    \begin{enumerate}
    \item Descripci\'on breve: \\
        Se ordenan los listados de reservas.
    \item Actores: \\
        Administrador.
    \item Disparadores: \\
        Click en el bot\'on en el nombre de cualquier columna
        dentro de cualquier listado de reservas.
    \end{enumerate}
    \item Flujo de Eventos: 
    \begin{enumerate}
        \item Flujo b\'asico:
	\begin{enumerate}
            	\item Un Administrador hace click en \underline{Reservas}
	    	\item El Administrador hace click en alguno de los nombres de las columnas, el cual ser\'a el criterio de ordenaci\'on. Estos pueden ser:
		\begin{itemize}
			\item Usuario
			\item Cancha
			\item Complejo
			\item Estado
			\item Costo
			\item Pagado
		\end{itemize}
	\end{enumerate}
	\end{enumerate}

    \item Precondiciones: \\
        Administrador logueado como administrador.
    \item Post condiciones \\
        Listado ordenado seg\'un columna seleccionada.
\end{enumerate}
\end{document}
